#ifndef USERDIALOG_H
#define USERDIALOG_H

#include <QDialog>
#include <QMessageBox>
#include "databasemanager.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class UserDialog;
}
QT_END_NAMESPACE

class UserDialog : public QDialog
{
    Q_OBJECT

public:
    // 构造函数
    UserDialog(QWidget *parent = nullptr);
    // 析构函数
    ~UserDialog();
    
    // 清空表单（用于添加模式）
    void clearForm();
    // 设置用户信息（用于编辑模式）
    void setUserInfo(const UserInfo& userInfo);

private slots:
    // 保存按钮点击
    void onSaveClicked();
    // 取消按钮点击
    void onCancelClicked();
    // 重置密码复选框状态变化
    void onResetPasswordToggled(bool checked);

private:
    // 验证输入数据
    bool validateInput();
    // 保存用户数据
    bool saveUser();
    // 显示错误信息
    void showError(const QString& message);
    // 显示成功信息
    void showSuccess(const QString& message);
    // 设置编辑模式
    void setEditMode(bool isEdit);
    
    // UI对象
    Ui::UserDialog *ui;
    // 是否为编辑模式
    bool isEditMode;
    // 当前编辑的用户ID（编辑模式下使用）
    int currentUserId;
};

#endif // USERDIALOG_H